<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FormData使用</title>
</head>

<body>
    <form id="form">
        <input type="text" name="username" /><br>
        <input type="password" name="password" /><br>
        <input type="button" value="提交" id='btn' />
    </form>
    <script>
        var form = document.getElementById('form');
        var btn = document.getElementById('btn');
        btn.onclick = function() {
            // 将普通的html表单转换为表单对象
            var formData = new FormData(form);
            // 获取表单对象中属性的值
            console.log(formData.get('username'));
            // 设置表单对象属性的值
            formData.set('username', 'itcast');
            // 注意: set 方法与append方法的区别是，在属性名已存在的情况下，
            // set会覆盖已有键名的值，append会保留两个值，后台要进行处理
            formData.append('username', 'itheima');
            // 如果设置的表单属性不存在,将会创建这个表单属性,如果存在,将会覆盖原有的属性值
            formData.set('age', 20);
            // 删除表单对象中属性的值
            formData.delete('password');
            var xhr = new XMLHttpRequest();
            xhr.open('post', '/formData');
            xhr.send(formData);
            xhr.onload = function() {
                if (xhr.status == 200) {
                    console.log(xhr.responseText);
                }
            }
        }
    </script>
</body>

</html>